package com.hefeng.unit.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.transaction.annotation.Transactional;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;


@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "设备信息表", description = "")
@TableName("gy_device")
@Transactional

public class GyDevice implements Serializable, Cloneable {
    /**
     * 设备id
     */
    @ApiModelProperty(name = "设备id", notes = "")
    @TableId(type = IdType.NONE)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private String deviceId;
    /**
     * 用户编号
     */

    @ApiModelProperty(name = "用户编号", notes = "")
    private String userId;
    /**
     * 设备名称
     */
    @ApiModelProperty(name = "设备名称", notes = "")
    @TableField("device_name")
    private String deviceName;
    /**
     * 设备编码
     */
    @ApiModelProperty(name = "设备条形码", notes = "")
    @TableField("device_code")
    private String deviceCode;
    /**
     * 设备缩略图
     */
    @ApiModelProperty(name = "设备缩略图", notes = "")
    @TableField("device_thum_pic")
    private String deviceThumPic;
    /**
     * 设备封面图
     */
    @ApiModelProperty(name = "设备封面图", notes = "")
    @TableField("device_cover_pic")
    private String deviceCoverPic;
    /**
     * 设备型号
     */
    @ApiModelProperty(name = "设备型号", notes = "1：驰诚  2：易捷  3：保时安  4：安可信（独立式）")
    @TableField("device_model")
    private String deviceModel;
    /**
     * 设备IMEI号
     */
    @ApiModelProperty(name = "设备IMEI号", notes = "")
    private String deviceImei;
    /**
     * 设备类型;（1：是   2：否）
     */
    @ApiModelProperty(name = "是否为主机", notes = "（1：是   2：否）")
    private String isHost;
    /**
     * 设备状态;（1：正常2  ：报警，3：故障，4：离线）
     */
    @ApiModelProperty(name = "设备状态", notes = "（1：正常2  ：报警，3：故障，4：离线）")
    @TableField("device_state")
    private Integer deviceState;
    /**
     * 设备介绍
     */
    @ApiModelProperty(name = "设备介绍", notes = "(1 厨房 2:客厅 3 卧室 4 公共区域)")
    private String deviceInfo;
    @ApiModelProperty(name = "城市编码", notes = "")
    private String citycode;
    /**
     * 行政区域编码
     */
    @ApiModelProperty(name = "行政区域编码", notes = "")
    private String adcode;
    /**
     * 乡镇街道编码
     */
    @ApiModelProperty(name = "乡镇街道编码", notes = "")
    private String towncode;
    /**
     * 设备详细地址
     */
    @ApiModelProperty(name = "设备详细地址", notes = "")
    private String deviceAddress;
    /**
     * 设备所在经度
     */
    @ApiModelProperty(name = "设备所在经度", notes = "")
    private String deviceLongitude;
    /**
     * 设备所在维度
     */
    @ApiModelProperty(name = "设备所在维度", notes = "")
    private String deviceLatitude;
    /** 设备备注信息 */
//    @ApiModelProperty(name = "设备备注信息",notes = "")
//    private String deviceRemarks ;
    /**
     * 设备激活时间
     */
    @ApiModelProperty(name = "设备激活时间", notes = "")
    private Date deviceActiveTime;
    /**
     * 设备报废时间
     */
    @ApiModelProperty(name = "设备报废时间", notes = "")
    private Date deviceScrapTime;
//    /** 厂家id */
//    @ApiModelProperty(name = "厂家id",notes = "")
//    private String manufacturerCode ;
    /**
     * 设备制造商
     */
    @ApiModelProperty(name = "设备制造商", notes = "")
    private String deviceManufacturer;
    /**
     * 设备阈值
     */
    @ApiModelProperty(name = "设备阈值", notes = "")
    private String deviceLimitValue;
    /**
     * 是否删除;（1：正常  2：删除）
     */
    @ApiModelProperty(name = "是否删除", notes = "（1：正常  2：删除）")
    private Integer isDeleted;
    /**
     * 创建时间
     */
    @ApiModelProperty(name = "创建时间", notes = "")
    private Date createdTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(name = "更新时间", notes = "")
    private Date updatedTime;

    @TableField(exist = false)
    @ApiModelProperty(value = "页数")
    @NotNull(message = "页数不能为空")
    private Integer pageNum;
    @TableField(exist = false)
    @ApiModelProperty(value = "条数")
    @NotNull(message = "条数不能为空")
    private Integer pageSize;

    private String deviceRemarks;

    private String location;




}
